home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b9.d64 / c64symb.merlin < prev    next >
Text File  |  2007-02-28  |  22KB  |  858 lines

  1.  
  2.  
  3. *+------------------------------------------------+
  4. *!áááááááááááááááááááááááááááááááááááááááááááááááá!
  5. *!áááááááááááááááááááááááááááááááááááááááááááááááá!
  6. *!ááááááá****ááCOMMODOREá64ááCOMAL-80áá******ááááá!
  7. *!áááááááááááááááááááááááááááááááááááááááááááááááá!
  8. *!ááááááá(C)áCOPYRIGHTáUNICOMALáAPSáá1983,á1984ááá!
  9. *!áááááááááááááááááááááááááááááááááááááááááááááááá!
  10. *!áááááááááááááááááááááááááááááááááááááááááááááááá!
  11. *!ááC64SYMBáFORáCOMMODOREá64ááCOMAL-80áREV.á2.01áá!
  12. *!áááááááááááááááááááááááááááááááááááááááááááááááá!
  13. *!áááááááááááááááááááááááááááááááááááááááááááááááá!
  14. *+------------------------------------------------+
  15.  
  16.  
  17.  
  18.  
  19. PAGE0 =   %11100000 ;NOáEXPANSION
  20. PAGE1 = %10000000 ;CARTRIDGEáOVERLAYá1á($8000-$BFFF)
  21. PAGE2 = %10000001 ;CARTRIDGEáOVERLAYá2á($8000-$BFFF)
  22. PAGE3 = %10000010 ;CARTRIDGEáOVERLAYá3á($8000-$BFFF)
  23. PAGE4 = %10000011 ;CARTRIDGEáOVERLAYá4á($8000-$BFFF)
  24. PAGE5 = %10000100 ;CARTRIDGEáOVERLAYá5á($8000-$BFFF)
  25. PAGE6 = %10000101 ;CARTRIDGEáOVERLAYá6á($8000-$BFFF)
  26.  
  27. PAGEA = PAGE2 ;COMALáPAGEáA
  28. PAGEB = PAGE3 ;COMALáPAGEáB
  29. PAGEC = PAGE1 ;COMALáPAGEáC
  30.  
  31.  
  32.  
  33. *áááPAGEáZEROáVARIABLES:
  34.  ast 56
  35.  
  36.  DUM $0000
  37.  
  38. D6510 DS 1 ;6510áON-CHIPáDATA-DIRECTIONáREGISTER
  39. R6510 DS 1 ;6510áON-CHIPá6-BITáI/O/MAP-REGISTER:
  40. LORAM = %00000001 ;ááCONTROLáFORáRAM/ROMáATá$A000-$BFFFá(BASIC)
  41. HIRAM = %00000010 ;ááCONTROLáFORáRAM/ROMáATá$E000-$FFFFá(KERNAL)
  42. CHAREN = %00000100 ;ááCONTROLáFORáI/O/ROMáATá$D000-$DFFF
  43. NORM = %00110111 ;ááCOMALáMEMORYáMAP
  44.  
  45. PRPROC DS 3 ;CHAINáOFáLOCALáNAMESá(PREPASS)
  46. INTEGR DS 1 ;FPáWORK
  47.  
  48. *áMEMORYáMAPáCONTROL
  49.  
  50. PAGE DS 1 ;CURRENTáMEMORYáMAP
  51. CM8096 = PAGE
  52. MEMMAP = PAGE
  53. PAGEPT DS 2 ;POINTERáUSEDáBYáLOAD/STORE/EXEC
  54. PAGEX DS 1 ;OVERLAYáFORáLOAD/STORE/EXECáROUTINES
  55. PAGEY DS 1 ;OVERLAYáUSEDáFORáCONTROLáOFáJUMPáTABLE
  56. P6510 DS 1 ;OLDáC64-OVERLAYáFORáCONTROLáOFáJUMPáTABLE
  57. RESOL DS 1 ;GRAPHICSáRESOLUTION
  58. GCOLH DS 1 ;GRAPHICSáPENCOLOR*16
  59.  
  60. *áCOMALáVARIABLES
  61.  
  62. LOCLPT DS 2 ;CHAINáOFáOLDáVARIABLEáDESCRIPTIONS
  63. FORPT DS 2 ;STACKáENTRYáCHAIN
  64. SCTYPE DS 1 ;TYPEáOFáSYMBOLáFROMáSCANNER
  65. TANSGN DS 1 ;TANáSIGNá/áCOMPARISONáEVALUATIONáFLAG
  66. CODE DS 1 ;USEDáTOáHOLDáAáGENERATEDáCODE
  67. CPNT DS 1 ;POINTERáTOáCODEáBUFFER,áCDBUF
  68. CLIMIT = 255 ;LIMITáOFáCPNT
  69. SPROG DS 2 ;PNTáTOáSTARTáOFáPROGRAM
  70. SVARS DS 2 ;PNTáTOáSTARTáOFáVARIABLEáTABLE
  71. SSTACK DS 2 ;PNTáTOáSTARTáOFáSTACK
  72. SMAX DS 2 ;PNTáTOáTOPáOFáMEMORY
  73. EXINF DS 1 ;INFáFORáRESULTáEXPRESSIONáFROMáEXPR
  74. SCERR = $01
  75. SCLNO = $08 ;SET,áIFáNUMBERáCANáBEáAáLINEáNUMBER
  76. LNLEN DS 1 ;LENGTHáOFáLINEáTOáBEáEXECUTED
  77. NPNT DS 1 ;POINTERáTOáNAME
  78. TPNT DS 1 ;POINTERáTOáSTRING
  79. TLIMIT = 80
  80.  
  81. INDEX1 DS 2 ;UTILITYáPOINTER
  82. INDEX2 DS 2 ;UTILITYáPOINTER
  83. INDEX = INDEX1
  84.  
  85. RESM1 DS 1 ;PRODUCTáAREAáFORáMULTIPLICATION
  86. RESM2 DS 1
  87. RESM3 DS 1
  88. RESM4 DS 1
  89. RESM5 DS 1
  90.  
  91. MULT1 = RESM1 ;FIRSTáOPERANDá(MULT)
  92. MULT2 = RESM3 ;SECONDáOPERANDá(MULT)
  93.  
  94. DATAPT DS 2 ;CURRENTáDATAáPOINTER
  95. STOS DS 2 ;PNTáTOáTOPáOFáSTACK
  96. SFREE DS 2 ;PNTáTOáFREEáAREAáOFáVAR.RES
  97. PRGPNT DS 2 ;PNTáTOáSTARTáOFáLINE
  98. CODPNT DS 1 ;PNTáTOáCODEáDURINGáEXECUTION
  99. SCLSD1 DS 2 ;OLDáSFREEá(CLOSED)
  100. SCLSD2 DS 2 ;OLDáSTOSáá(CLOSED)
  101. INF1 DS 1
  102. INF2 DS 1 ;USEDáFORáOPERANDáCHECKING
  103. INF3 DS 1
  104. Q1 DS 2 ;SHORTáSPANáWORKáAREAS
  105. Q2 DS 2
  106. Q3 DS 2
  107. Q4 DS 2
  108. Q5 DS 2
  109. COPY1 DS 2 ;WORKáFORáCOPY:áFROM
  110. COPY2 DS 2 ;áááááááááááááááTO
  111. FDECPT = COPY2 ;CURRENTáVARIABLEáADDRESSá(DECáPOINTER)
  112. COPY3 DS 2 ;áááááááááááááááLENGTH
  113. BUS DS 1 ;BUS=á0:áBUSáIDLE;áBUS<>0:áBUSáACTIVE
  114. STINF DS 1 ;INFORMATIONáFORáSTATEMENT:
  115. CMND = $01 ;ááNOáLINEáNUMBER
  116. TWOST = $02 ;ááANOTHERáSTATEMENTáFOLLOWS
  117. WHLDO = $04 ;ááAFTERáWHILEá...áDO
  118. FORDO = $08 ;ááAFTERáFORá...áDO
  119. COMMNT = $10 ;ááSTATEMENTáENDEDáBYáCOMMENT
  120. IFTHEN = $20 ;ááAFTERáIFá...áTHEN
  121. REPUNT = $40 ;ááAFTERáREPEATá...áUNTIL
  122.  
  123. EXCINF DS 1 ;EXECUTIONáINFORMATION:
  124. ESCTRP = $02 ;ááESCAPEáISáTRAPPEDá(STOP)
  125. SRQ = $04 ;ááMAKEáCALLáOFáCOMALáINTERRUPTáHANDLER.
  126. ESCMET = $08 ;ááESCAPEáMETá(STOP)
  127. SRQON = $10 ;ááSRQáENABLED
  128. USRQON = $20 ;ááUSERáREQUESTáENABLED
  129. SFTSRQ = $80 ;ááSOFTWAREáSRQáONLY
  130.  
  131. *áVARIABLESáFORáFLOATINGáPOINTáPACKAGES
  132.  
  133. TEMPF3 DS 6 ;MISC.áFPáWORKáAREA
  134. ESCAPE DS 1 ;STOPáKEYáFLAG
  135.  DS 1 ;NOTáUSED
  136. OLDOV DS 1 ;OLDáOVERFLOWá(ROUNDING)
  137. TEMPF1 DS 5 ;MISC.áFPáWORKáAREAá(5áBYTES)
  138. TEMPF2 DS 5 ;MISC.áFPáWORKáAREAá(5áBYTES)
  139. DECCNT = TEMPF2+1
  140. TENEXP = TEMPF2+2
  141.  
  142. AC1 DS 6 ;ACCUM#1:
  143. AC1E = AC1+0 ;ááEXPONENT
  144. AC1M1 = AC1+1 ;ááMANTISSAá1
  145. AC1M2 = AC1+2 ;ááMANTISSAá2
  146. AC1M3 = AC1+3 ;ááMANTISSAá3
  147. AC1M4 = AC1+4 ;ááMANTISSAá4
  148. AC1S = AC1+5 ;ááSIGN
  149.  
  150. DEGREE DS 1 ;SERIESáEVALUATIONáCONSTANTáPOINTER
  151. BITS DS 1 ;ACCUM#1:áHI-ORDERá(OVERFLOW)
  152.  
  153. AC2 DS 6 ;ACCUM#2:
  154. AC2E = AC2+0 ;ááEXPONENT
  155. AC2M1 = AC2+1 ;ááMANTISSAá1
  156. AC2M2 = AC2+2 ;ááMANTISSAá2
  157. AC2M3 = AC2+3 ;ááMANTISSAá3
  158. AC2M4 = AC2+4 ;ááMANTISSAá4
  159. AC2S = AC2+5 ;ááSIGN
  160.  
  161. ARISGN DS 1 ;SIGNáCOMPARISON,áACC#1áVSáACC#2
  162. FACOV DS 1 ;ACCUM#1:áLO-ORDERá(ROUNDING)
  163. POLYPT DS 2 ;POINTERáTOáPOLYNOM.
  164. FBUFPT = POLYPT
  165.  
  166. *áMOREáCOMALáVARIABLES
  167.  
  168. ASAVE DS 1 ;SAVEáFORá.Aá(CALL/GOTO)
  169. XSAVE DS 1 ;SAVEáFORá.Xá(CALL/GOTO)
  170. PSAVE DS 1 ;SAVEáFORá.Pá(CALL/GOTO)
  171. INDPNT DS 1 ;POINTERáTOáLASTáCODEáWHEREáANáADDRESSáWASáLOADED
  172. SCFLAG DS 1 ;FLAGSáINáSCANNER:
  173. LNNO DS 2 ;LINEáNUMBER
  174. MOVEAD DS 2 ;ADDRESSáFORáMOVE
  175. TXTLO DS 1 ;ADDRESSáOFáTEXTáFORáPRTXT
  176. TXTHI DS 1
  177. XX DS 2 ;CURRENTáXá(GRAPHICS)
  178. YY DS 2 ;CURRENTáYá(GRAPHICS)
  179. GRWK1 DS 2
  180. GRWK2 DS 2
  181. GRWK3 DS 2
  182. EXCFLG DS 1 ;FLAGS:
  183. NWNAME = $01 ;áNEWáNAMEáHASáBEENáINSERTED
  184. NWLINE = $02 ;áNEWáLINEáHASáBEENáINSERTED
  185. CHARPT DS 1 ;áPNTáTOáINBUF
  186. CHAR DS 1 ;áCHARáFROMáINCHAR
  187. RNDX DS 5 ;áRANDOMáNUMBERáSEED
  188.  
  189. *áVARIABLESáFORáI/O
  190.  
  191. STATUS DS 1 ;I/OáOPERATIONáSTATUS
  192. STKEY DS 1 ;STOPáKEYáFLAG
  193. SVXT DS 1 ;TEMPORARY
  194. VERCK DS 1 ;LOADáORáVERIFYáFLAG
  195. C3P0 DS 1 ;IEEEáBUFFEREDáCHARáFLAG
  196. BSOUR DS 1 ;CHARáBUFFERáFORáIEEE
  197. SYNO DS 1 ;CASSETTEáSYNCá#
  198. XSAV DS 1 ;TEMPáFORáBASIN
  199. LDTND DS 1 ;HOWáMANYáFILESáOPEN
  200. DFLTN DS 1 ;DEFAULTáINPUTáDEVICEá#
  201. DFLTO DS 1 ;DEFAULTáOUTPUTáDEVICEá#
  202. PRTY DS 1 ;CASSETTEáPARITY
  203. T3 = PRTY
  204. DPSW DS 1 ;CASSETTEáDIPOLEáSWITCH
  205. MSGFLG DS 1 ;OSáMESSAGEáFLAG
  206. PTR1 DS 1 ;CASSETTEáERRORáPASSá1
  207. T1 = PTR1 ;TEMPORARYá1
  208. PTR2 DS 1 ;CASSETTEáERRORáPASSá2
  209. TMPC = PTR2
  210. T2 = PTR2 ;TEMPORARYá2
  211. TIME DS 3 ;24áHOURáCLOCKáINá1/60áSEC.
  212. R2D2 = * ;SERIALáBUSáUSAGE
  213. PCNTR DS 1 ;CASSETTEáSTUFF
  214. BSOUR1 = * ;TEMPáUSEDáBYáSERIALáROUTINE
  215. FIRT DS 1
  216. COUNT = * ;TEMPáUSEDáBYáSERIALáROUTINE
  217. CNTDN DS 1 ;CASSETTEáSYNCáCOUNTDOWN
  218. BUFPT DS 1 ;TAPEáBUFFERáPOINTER
  219. SHCNL = * ;CASSETTEáSHORTáCOUNT
  220. INBIT DS 1 ;RS232áRCVRáINPUTáBITáSTORAGE
  221. RER = * ;CASSETTEáREADáERROR
  222. BITCI DS 1 ;RS232áRCVRáBITáCOUNTáIN
  223. REZ = * ;CASSETTEáREADINGáZEROES
  224. RINONE DS 1 ;RS232áRCVRáFLAGáFORáSTARTáBITáCHECK
  225. RDFLG = * ;CASSETTEáREADáMODE
  226. RIDATA DS 1 ;RS232áRCVRáBYTEáBUFFER
  227. RIPRTY DS 1 ;RS232áRCVRáPARITYáSTORAGE
  228. SHCNH = RIPRTY ;CASSETTEáSHORTáCOUNT
  229. SAL DS 1 ;POINTER:áTAPEáBUFFER/SCREENáSCROLLING
  230. SAH DS 1
  231. EAL DS 1
  232. EAH DS 1
  233. CMP0 DS 1 ;TAPEáTIMINGáCONSTANT
  234. TEMP DS 1 ;TAPEáTIMINGáCONSTANT
  235. TAPE1 DS 2 ;STARTáOFáTAPEáBUFFER
  236.  
  237. SNSW1 = * ;CASSETTEáSTUFF
  238. BITTS DS 1 ;RS232áTRNSáBITáCOUNT
  239. NXTBIT DS 1 ;RS232áTRNSáNEXTáBITáTOáBEáSENT
  240. DIFF = NXTBIT ;EOTáRECEIVEDáFROMáTAPE
  241. PRP = *
  242. RODATA DS 1 ;RS232áTRNSáBYTEáBUFFER
  243. FNLEN DS 1 ;LENGTHáOFáCURRENTáFILEáNAME
  244. LA DS 1 ;CURRENTáFILEáLOGICALáADDRESS
  245. SA DS 1 ;CURRENTáFILEáSECONDARYáADDRESS
  246. FA DS 1 ;CURRENTáFILEáPRIMARYáADDRESS
  247. FILADR DS 2 ;CURRENTáFILEáNAMEáADDRESS
  248. OCHAR = *
  249. ROPRTY DS 1 ;RS232áTRNSáPARITYáBUFFER
  250. FSBLK DS 1 ;CASSETTEáREADáBLOCKáCOUNT
  251. MYCH DS 1 ;SERIALáWORDáBUFFER
  252. CAS1 DS 1 ;CASSETTEáMANUAL/CONTROLLEDáSWITCH
  253. STAL DS 1 ;TAPEáSTARTáADDRESS
  254. STAH DS 1
  255. TMP2 = *
  256. MEMUSS DS 2 ;TAPEáLOADáTEMPS
  257.  
  258. *áVARIABLESáFORáSCREENáEDITOR
  259.  
  260. LSTX DS 1 ;KEYáSCANáINDEX
  261. NEWKEY = LSTX
  262. NDX DS 1 ;KEYáBUFFERáPOINTER
  263. RVS DS 1 ;REVERSEáFIELDáONáFLAG
  264. INDX DS 1 ;BYTEáPOINTERáTOáENDáOFáLINEáFORáINPUT
  265. LSXP DS 1 ;STARTáOFáSCREENáINPUTá(ROW)
  266. LSTP DS 1 ;STARTáOFáSCREENáINPUTá(COLUMN)
  267. SFDX DS 1 ;SHIFTáMODEáONáPRINT
  268. BLNSW DS 1 ;CURSORáBLINKáENABLE
  269. BLNCT DS 1 ;COUNTERáTOáFLIPáCURSOR
  270. GDBLN DS 1 ;OLDáCHARáBEFOREáBLINK
  271. BLNON DS 1 ;ON/OFFáBLINKáFLAG
  272. CRSW DS 1 ;INPUT/GETáFLAG
  273. PNT DS 2 ;POINTERáTOáSTARTáOFáLINEáWHERE
  274. CURLIN = PNT ;CURSORáISáFLASHING.
  275. PNTR DS 1 ;COLUMNáPOSITIONáWHEREáCURSOR
  276. COLPOS = PNTR ;ISáFLASHING.
  277. QTSW DS 1 ;FLAGáFORáQUOTEáMODE
  278. QUOTE = QTSW
  279. LNMX DS 1 ;CURRENTáSCREENáLINEáLENGTHá(39/79)
  280. TBLX DS 1 ;LINEáNUMBERáWHEREáCURSORáISáFLASHING
  281. ROWPOS = TBLX
  282. DATA DS 1 ;TEMPáDATAáAREA
  283. INSRT DS 1 ;NUMBERáOFáINSERTáKEYSáPUSHEDáTOáGO
  284. WRPTB DS 26 ;LINEáFLAGS+ENDSPACE
  285. LDTB1 = WRPTB
  286. USER DS 2 ;SCREENáEDITORáCOLORáPOINTER
  287. KEYTAB DS 2 ;KEYBOARDáDECODEáTABLE
  288.  
  289. RIBUF DS 2 ;RS232áINPUTáBUFFERáADDRESS
  290. ROBUF DS 2 ;RS232áOUTPUTáBUFFERáADDRESS
  291. FREKZP DS 5 ;FREEáKERNALáZ-PAGEáSPACE
  292.  
  293. *áENDáOFáPAGEáZERO
  294.  
  295. STACK DS 256 ;SYSTEMáSTACK
  296. FBUFFR = STACK ;FPASCáWORKáAREAá(15áBYTES)
  297. BAD = STACK ;TAPEáINPUTáERRORáLOG
  298.  
  299.  
  300. ERTLEN DS 1 ;LENGTHáOFáERTEXT
  301. MAXERT = 79 ;MAX.áLENGTHáOFáERTEXT
  302. ERTEXT DS MAXERT ;BUFFERáTOáHOLDáERRORáMESSAGE
  303.  
  304.  
  305. *áSTORAGEáFORáCONáCOMMAND:
  306.  
  307. CONPNT DS 2 ;OLDáPRGPNT
  308. CONFLG DS 1 ;OLDáEXCINF
  309. CONCOD DS 1 ;OLDáCODPNT
  310. CONFOR DS 2 ;OLDáFORPT
  311.  
  312. FPWORK DS 1
  313. EXTROM DS 1 ;EXTERNALáROMáFLAGá(0=áNO,á'I'=áYES)
  314. IEEEIN DS 1 ;IEEEáINSTALLEDáááá(0=áNO,á'I'=áYES)
  315.  
  316. LAT DS 10 ;TABLEáOFáLA'S
  317. FAT DS 10 ;TABLEáOFáFA'S
  318. SAT DS 10 ;TABLEáOFáSA'S
  319. KEYBUF DS 10 ;KEYBOARDáBUFFERáQUEUEá(FIFO)
  320.  
  321. MEMSTR DS 2 ;STARTáOFáMEMORY
  322. MEMSIZ DS 2 ;TOPáOFáMEMORY
  323. TIMOUT DS 1 ;IEEEáTIMEáOUTáDEFEAT
  324.  
  325. *áSCREENáEDITORáSTORAGE
  326.  
  327. COLOR DS 1 ;ACTIVEáCOLORáNYBBLE
  328. GDCOL DS 1 ;ORIGINALáCOLORáUNDERáCURSOR
  329. HIBASE DS 1 ;BASáLOCATIONáOFáSCREEN
  330. KBFLIM DS 1 ;SIZEáOFáKEYBOARDáBUFFER
  331. RPTFLG DS 1 ;KEYáREPEATáFLAG
  332. RPTCNT DS 1 ;REPEATáSPEEDáCOUNTER
  333. DELAY DS 1 ;REPEATáDELAYáCOUNTER
  334. SHFLAG DS 1 ;KEYBOARDáSHIFTáKEY/CTRLáKEY/C=ááKEY
  335. LSTSHF DS 1 ;LASTáKEYBOARDáSHIFTáPATTERN
  336. KEYLOG DS 2 ;VECTOR:áKEYBOARDáTABLEáSETUP
  337. SHMODE DS 1 ;0=áPETáMODE,á1=áCATTACANNA
  338. AUTODN DS 1 ;AUTOáSCROLLáDOWN,á0=áON
  339.  
  340. *áRS232áSTORAGE
  341.  
  342. M51CTR DS 1 ;6551áCONTROLáREGISTERáIMAGE
  343. M51CDR DS 1 ;6551áCOMMANDáREGISTERáIMAGE
  344. M51AJB DS 2 ;NON-STANDARDáBPSá(TIME/2-100)áUSA
  345. RSSTAT DS 1 ;6551áSTATUSáREGISTER
  346. BITNUM DS 1 ;NUMBERáOFáBITSáLEFTáTOáSEND
  347. BAUDOF DS 2 ;BAUDáRATE:áFULLáBITáTIMEá(MICROSEC)
  348. RIDBE DS 1 ;INDEXáTOáENDáOFáINPUTáBUFFER
  349. RIDBS DS 1 ;STARTáOFáINPUTáBUFFERá(PAGE)
  350. RODBS DS 1 ;STARTáOFáOUTPUTáBUFFERá(PAGE)
  351. RODBE DS 1 ;INDEXáTOáENDáOFáOUTPUTáBUFFER
  352.  
  353. IRQTMP DS 2 ;HOLDSáIRQ-VECTORáDURINGáTAPEáI/O
  354.  
  355. *áTEMPáSPACEáFORáC64áVARIABLES
  356.  
  357. ENABL DS 1 ;RS232áENABLES
  358. CASTON DS 1 ;TODáSENSEáDURINGáCASSETTEáI/O
  359. KIKA26 DS 1 ;TEMPáSTORAGEáFORáCASSETTEáREAD
  360. STUPID DS 1 ;TEMPáD1IRQáINDICATORáFORáCASSETTEáREAD
  361. LINTMP DS 1 ;TEMPáFORáLINEáINDEX
  362. PALNTS DS 1 ;FLAG:á0=áNTSC,á1=áPAL
  363.  
  364. FNMAX = 55
  365. FILNAM DS FNMAX ;USEDáFORáSTORAGEáOFáFILEáNAME
  366. TBUFF = FILNAM ;USEDáFORáSTORAGEáOFáDISCáCOMMAND
  367. RANGNO DS 1 ;LINEá#áRANGEáPOINTER
  368. RANGPT DS 1 ;LINEá#áRANGEáPOINTER
  369. RANGMX = 32
  370. RANGES DS RANGMX ;LINEá#áRANGES
  371. IERROR DS 2 ;VECTOR:áPRINTáBASICáERRORáMESSAGE
  372. NUMBER = TEMPF3 ;FPáWORKáAREAá(SYNTAXáANALYSIS)
  373.  DS 5 ;NOTáUSED
  374. NUM2 DS 5 ;FPáWORKáAREAá(PRINTáUSING)
  375. SAREG DS 8 ;UNUSED
  376.  
  377. *áKERNALáVECTORS:
  378.  
  379. CINV DS 2 ;IRQáRAMáVECTOR
  380. IRQVCT = CINV
  381. CBINV DS 2 ;BRKáINSTRáRAMáVECTOR
  382. BRKVCT = CBINV
  383. NMIVCT DS 2 ;NMIáRAMáVECTOR
  384. IOPEN DS 2 ;OPENáROUTINEáVECTOR
  385. ICLOSE DS 2 ;CLOSEáROUTINEáVECTOR
  386. ICHKIN DS 2 ;CHKINáROUTINEáVECTOR
  387. ICKOUT DS 2 ;CKOUTáROUTINEáVECTOR
  388. ICLRCH DS 2 ;CLRCHNáROUTINEáVECTOR
  389. IBASIN DS 2 ;CHRINáROUTINEáVECTOR
  390. IBSOUT DS 2 ;CHROUTáROUTINEáVECTOR
  391. ISTOP DS 2 ;STOPáROUTINEáVECTOR
  392. IGETIN DS 2 ;GETINáROUTINEáVECTOR
  393. ICLALL DS 2 ;CLALLáROUTINEáVECTOR
  394. USRCMD DS 2 ;FORáMACHINEáLANGUAGEáMONITOR
  395. ILOAD DS 2 ;LOADáROUTINEáVECTOR
  396. ISAVE DS 2 ;SAVEáROUTINEáVECTOR
  397.  DS 8 ;UNUSED
  398. TBUFFR DS 192 ;TAPEáI/OáBUFFER
  399.  DS 4 ;UNUSED
  400. SCSIZE = 1000 ;SCREENáSIZE
  401. SCREEN DS SCSIZE ;SCREENáMEMORYáAREA
  402.  DS 16 ;SCREENáMEMORYáEXCESS
  403. SPRPNT DS 8 ;SPRITEáDATAáPOINTERS
  404.  
  405.  
  406. *áCOMALáPROGRAMáFOLLOWSáHERE:
  407.  
  408. MBEGIN DS 4 ;STARTáOFáMEMORY
  409. MBEGN1 DS 1 ;STARTáOFáNAMEáTABLE
  410. MBEGN2 DS 1 ;STARTáOFáSTACKS
  411.  
  412.  
  413.  
  414. *áSTARTáHEREáTOáPUTáBUFFERS,áVARIABLES,áANDáJUMPáTABLE
  415.  
  416.  ORG $C000
  417.  
  418. RSIBUF DS 256 ;RS232áINPUTáBUFFER
  419. RSOBUF DS 256 ;RS232áOUTPUTáBUFFER
  420.  
  421. STDPCK DS 1000 ;VARIABLESáFORáSTANDARDáPACKAGES
  422.  
  423. INLEN = 121
  424. INBUF DS INLEN ;INPUTáBUFFER
  425. CDBUF DS CLIMIT ;CODEáBUFFER
  426. TXT DS TLIMIT ;STRINGáCONSTANTáBUFFER
  427. TXT1 = TXT-1
  428.  
  429. FLEVEL DS 1 ;FOR/TRAPáNESTINGáLEVELáDURINGáPREPASS
  430. Q6 DS 2 ;TEMPORARY
  431. Q7 DS 2 ;TEMPORARY
  432. Q8 DS 2 ;TEMPORARY
  433. Q9 DS 2 ;TEMPORARY
  434.  DS 3 ;UNUSED
  435. MOVELN = MULT1
  436. MOVETY = MULT2
  437.  
  438. SPSAV DS 1 ;SAVEáOFá.SáDURINGáEXECUTION
  439. SCINF DS 2 ;NAMEáPOINTER
  440.  
  441. PSTART = *
  442.  
  443. AUTO1 DS 2 ;CURRENTáLINEáNUMBERáFORáAUTO
  444. AUTOST DS 2 ;STEPáFORáAUTO
  445.  
  446. DSTART DS 2 ;STARTáOFáDATAáQUEUE
  447.  
  448. TABSET DS 1 ;VALUEáOFáLASTáZONEáSTATEMENT
  449. ALTPOS DS 1 ;POSITIONáINáSELECTáOUTPUTáFILE
  450. INTRNO DS 2 ;PROCEDUREáGIVENáBYáINTERRUPTáSTMT.
  451.  
  452. PEND = *
  453.  
  454. ERRPNT DS 1 ;CHARáPOSáOFáERROR
  455. NORINT DS 2 ;NORMALáINTERRUPTáVECTOR
  456. SAFE DS 1 ;SAFEáSTATUS
  457. MAINRV DS 1 ;MAINáREVISION
  458. SUBRV DS 1 ;SUBáREVISION
  459. TESTRV DS 1 ;TESTáVERSION
  460. MSGLIN DS 2 ;ADDRESSáOFáMESSAGEáLINE
  461. UPPER2 DS 1 ;COPYáOFáBORGE
  462. EXTPRC DS 1 ;FLAGáFORáLOADINGáOFáEXTERNALáPROC/FUNC
  463. EXTCNT DS 2 ;NESTINGáLEVELáOFáEXTERNALáPROC/FUNC
  464. SSIZE DS 1 ;40áCOL./80áCOL.
  465. LUNIT DS 1 ;LASTáDISCá(STATUS)
  466. BORGE DS 1 ;SPECIALáFLAGSáFORáLISTING
  467. OPENFL DS 1 ;FLAGáUSEDáBYáCOPEN
  468. DFUNLN DS 1 ;LENGTHáOFáDEFAULTáUNITáTEXT
  469. DFUNIT DS 2 ;DEFAULTáUNITá(POWERáUPáVALUE:á.BYTEá'0')
  470. DEFOUT DS 1 ;SELECTáOUTPUTáFLAG
  471.  
  472. IOVECT = * ;VECTORS:
  473. TRAPVC DS 2 ;ááPAGEB;áERRORáHANDLER
  474. EXTNVC DS 2 ;ááPAGEB;áEXTERNALáLOAD
  475. USRQVC DS 2 ;ááPAGEB;áINTERRUPTáFACILITY
  476. IERTXT DS 3 ;áááááááááERRORáMESSAGEáDATA
  477. IGETLN DS 2 ;ááPAGEA;áINPUTáCOMMANDáLINE
  478. ISAVEC DS 2 ;ááPAGEC;áSAVEáADDITIONALáINFO
  479. ILOADC DS 2 ;ááPAGEC;áLOADáADDITIONALáINFO
  480. IFNKEY DS 2 ;ááPAGEA;áHANDLEáFUNCTIONáKEYS
  481.  
  482. LIBPT DS 1 ;PTRáTOáPLACEáFORáNEXTáLIBRARYáDESCRIPTION
  483.  
  484. LIBLEN = 10 ;NO.áOFáLIBRARYáDESCRIPTIONS
  485.  
  486. LIBLO DS LIBLEN
  487. LIBHI DS LIBLEN
  488. LIBPAG DS LIBLEN
  489.  
  490.  
  491. *ááOPENáFILEáMODESá(COPENá&áCFNAME):
  492.  
  493. MREAD = 1 ;READ
  494. MWRITE = 2 ;WRITE
  495. MREL = 4 ;RELATIVEá(RANDOM)
  496.  
  497. *ááFILEáATTRIBUTESá(COPEN):
  498.  
  499. MDISK = 8 ;DISKáFILE
  500. MS = 16 ;SECONDARYáADDRESSáSELECTION
  501. ML = 32 ;AUTOáLINEFEED
  502. MT = 64 ;TIMEáOUT
  503. MA = 128 ;ASCIIáI/O
  504.  
  505. *ááFILEáTYPESá(CFNAME):
  506.  
  507. TAPPND = 8
  508. TPRG = 16
  509. TSEQ = TPRG+TPRG
  510. TREL = TSEQ+TPRG
  511. TUSR = TREL+TPRG
  512.  
  513. MODET DS 10 ;OPENáMODEáFORáFILES
  514. COUNTT DS 10 ;TABLEáOFáBYTEáCOUNTáFORáFILES
  515. STT DS 10 ;STATUSáFORáOPENEDáFILES
  516. RECOTL DS 10 ;TABLEáOFáRECORDáPOS.áFORáFILES
  517. RECOTH DS 10
  518.  
  519. PPAGE DS 1 ;OVERLAYáTOáPEEK/POKE/SYS
  520. NOREST DS 1 ;<>0:áDISABLEáSTOP/RESTORE
  521. LOADIN DS 1 ;<>0:áLOADINGáCOMALáPROGRAM
  522. UNITFL DS 1 ;0:áSIMP.DEV;á1:áDRIVE;á2:áCASSETTE
  523. MODE DS 1 ;FILEáMODE
  524. CSTAT DS 1 ;STATUSáOFáCOMALáPROGRAM
  525.  
  526. *ááá1:áINPUTáANALYSISáFROMáSCREEN
  527. *ááá2:ááá-ááááááá-áááááá-ááFILE
  528. *ááá3:áPREPASSING
  529. *ááá4:áEXECUTINGáAáCOMMAND
  530. *ááá5:áEXECUTINGáPROGRAM
  531.  
  532. LSTFLG DS 1 ;BITáVECTORáFORáRCREAT:
  533.  
  534. ININD = $01
  535. OUTIND = $02
  536. LSTCON = $04
  537. NOIND = $08
  538. LSTEXT = $10
  539.  
  540. LPMODE DS 1 ;DEFAULTáPRINTERáOPENáMODE
  541. LPSA DS 1 ;DEFAULTáPRINTERáSECONDARYáADDRESS
  542. LPFA DS 1 ;DEFAULTáPRINTERáUNIT
  543.  
  544. RECDEL DS 1 ;RECORDáPOSITIONINGáDELAY
  545. ENDADR DS 2 ;TOPáOFáRAM
  546. HEADLN DS 1 ;POWERáONáMESSAGEáFLAG
  547.  
  548. KWTAB DS 2 ;KEYWORDáTABLEá(PAGEA)
  549.  
  550. DFBORD DS 1 ;DEFAULTáBORDERáCOLOR
  551. DFBACK DS 1 ;DEFAULTáBACKGROUNDáCOLOR
  552. DFFORG DS 1 ;DEFAULTáFOREGROUNDáCOLOR
  553. ACBORD DS 1 ;ACTUALáTEXTáBORDER
  554. ACBACK DS 1 ;ACTUALáTEXTáBACKGROUND
  555.  
  556. KEYLEN DS 16 ;LENGTHSáOFáFUNC.KEYáDEF'S
  557. KLEN DS 1 ;#áOFáCHARSáLEFTáOFáDEF.
  558. KPNT DS 2 ;PNTáTOáKEYáDEF
  559. DEFINP DS 1 ;SELECTáINPUTáFLAG
  560. HZ50 DS 1 ;0=á60áHZ,á1=á50áHZáTOD
  561.  
  562.  DS 17 ;RESERVEDáFORáFUTUREáUSE
  563. MTO = *
  564.  
  565.  
  566. *áSUBROUTINESáTOáUSEáINáASSEMBLER
  567. *áCODEDáSUBROUTINESáINáCOMAL:
  568.  
  569. COLD DS 3 ;COLDáSTARTáOFáCOMAL
  570. WARM DS 3 ;WARMáSTARTáOFáCOMAL
  571. CALL DS 3 ;JSRáTOáANOTHERáPAGE.
  572. GOTO DS 3 ;JMPáTOáANOTHERáPAGE.
  573. LOAD DS 3 ;LOADáFROMáPAGEX
  574. STORE DS 3 ;STOREáTOáPAGEX
  575. EXEC DS 3 ;JSRáTOáPAGEX
  576.  
  577. LDAC1 DS 3 ;LOADáAC1
  578. LDAC2 DS 3 ;LOADáAC2
  579. FNDPAR DS 3 ;FINDáPARAMETERá(ASM.CALLS)
  580. COPY DS 9 ;COPYáAREAáTOWARDSáLOWERáADDRESSES
  581. COPYDN DS 9 ;COPYáAREAáTOWARDSáHIGHERáADDRESSES
  582. FPADD DS 3 ;LOADáAC2áANDáADDáAC2áTOáAC1
  583. FPADD2 DS 9 ;ADDáAC2áTOáAC1
  584. FPAHF DS 9 ;ADDá0.5áTOáAC1
  585. FPSUB DS 3 ;LOADáAC2áANDáSUBáAC2áFROMáAC1
  586. FPSUB2 DS 9 ;SUBáAC2áFROMáAC1
  587. FPMUL DS 3 ;LOADáAC2áANDáMULáAC2áBYáAC1
  588. FPMUL2 DS 9 ;MULáAC2áBYáAC1
  589. FPDIV DS 3 ;LOADáAC2áANDáDIVáAC2áBYáAC1
  590. FPDIV2 DS 9 ;DIVáAC2áBYáAC1
  591. MUL10 DS 9 ;MULTIPLYáAC1áBYá10.0
  592. DIV10 DS 9 ;DIVIDEáAC1áBYá10.0
  593. STAC1 DS 3 ;STOREáAC1
  594. C1T2 DS 9 ;COPYáAC1áTOáAC2
  595. C2T1 DS 9 ;COPYáAC2áTOáAC1
  596. FPNEG DS 9 ;NEGATEáAC1
  597. FPSGN DS 9 ;SIGNáOFáAC1
  598. FPSIN DS 9 ;SINEáOFáAC1
  599. FPCOS DS 9 ;COSINEáOFáAC1
  600. FPSQR DS 9 ;SQUAREáROOTáOFáAC1
  601. FPTAN DS 9 ;TANGENTáOFáAC1
  602. FPPOW DS 9 ;RAISEáAC2áTOáTHEáPOWERáOFáAC1
  603. FPATN DS 9 ;ARCTANGENTáOFáAC1
  604. FPEXP DS 9 ;RAISEáAC1áTOáTHEáPOWERáOFáE
  605. FPLOG DS 9 ;LOGARITHMáBASEáEáOFáAC1
  606. FPRND DS 9 ;COMPUTEáPSEUDO-RANDOMáNUMBERá(RANGEá0áTOá1)
  607. FPCOM DS 9 ;COMPAREáNUMBERáTOáAC1
  608. TRUNC DS 9 ;CONVERTáAC1áINTOáINTEGERá(-32768á..á32767)
  609. FPINT = TRUNC
  610. FPINTG DS 9 ;CONVERTáAC1áINTOáINTEGERá(-2^24á..á2^24-1)
  611. FPINTA DS 9 ;CONVERTáAC1áINTOáINTEGERá(0á..á65535)
  612. INTFP DS 9 ;CONVERTáINTEGERáINTOáFPáINáAC1
  613. FPASC DS 9 ;CONVERTáAC1áINTOáASCIIáEQUIVALENTá(STR$)
  614.  
  615. VAL DS 6 ;CONVERTáDECIMALáSTRINGáINTOáBINARYáINáAC1
  616. POPA1 DS 9 ;POPáAC1
  617. POPA2 DS 9 ;POPáAC2
  618. PUSHA1 DS 9 ;PUSHáAC1
  619. PUSHRL DS 9 ;PUSHáREALáNUMBER
  620. PSHINT DS 9 ;FLOATá&áPUSHáINTEGERá(-32768á..á32767)
  621. INTFPA DS 9 ;FLOATá&áPUSHáINTEGERá(0á..á65535)
  622.  
  623. EXCGST DS 9 ;ALLOCATEáLOCALáSTORAGE
  624. EXCREM DS 9 ;RECLAIMáLOCALáSTORAGE
  625. RESTOP DS 9 ;ALLOCATEáGLOBALáSTORAGE
  626. RUNERR DS 6 ;GOáTOáCOMALáERRORáHANDLER
  627.  
  628. CRDT DS 3 ;READáCHARACTER
  629. SPACE DS 2 ;WRITEáSPACE
  630. CWRT DS 3 ;WRITEáCHARACTER
  631. CCHKIN DS 3 ;SELECTáINPUTáFILE
  632. CCKOUT DS 3 ;SELECTáOUTPUTáFILE
  633. CCLRCH DS 3 ;CLEARáCHANNEL
  634. CFNAME DS 7 ;PARSEá&áCOPYáFILEáNAME
  635. COPEN DS 3 ;OPENáFILE
  636. CCLOSE DS 3 ;CLOSEáFILE
  637. CRLF DS 3 ;OUTPUTáCRáANDáLF
  638. GETLIN DS 7 ;INPUTáKEYBOARDáLINE
  639.  
  640. RESET DS 6 ;RESETáPROGRAMáPOINTERS
  641. DUMMY DS 1 ;EMPTYáSUBROUTINEá(RTS)
  642. COMAL DS 6 ;GOáTOáCOMALáEDITOR
  643. EXCUTE DS 7 ;EXECUTEáCODEáINáCDBUF
  644. JLOAD DS 7 ;LOADáCOMALáPROGRAM
  645. ARRLEN DS 7 ;COMPUTEáNO.áOFáELEMENTSáINáARRAY
  646.  
  647.  ORG $D000
  648.  
  649. *á6566áVIDEOáINTERFACEáCONTROLLER
  650.  
  651. VIC = *
  652. SPRPOS DS 16 ;SPRITESá0-7ááXá&áYáPOS
  653. SPRXPS DS 1 ;SPRITESá0-7ááX-POSá(MSBáOFáX-COORD.)
  654. VCTRL1 DS 1 ;VICáCONTROLáREGISTER
  655. RWRAST DS 1 ;READ/WRITEáRASTERáVALUEáFORáCOMPAREáIRQ
  656. PENX DS 1 ;LIGHT-PENáLATCHáX-POS
  657. PENY DS 1 ;LIGHT-PENáLATCHáY-POS
  658. SPRDSP DS 1 ;SPRITEáDISPLAYáENABLE
  659. VCTRL2 DS 1 ;VICáCONTROLáREGISTER
  660. SPRYEX DS 1 ;SPRITESá0-7áEXPANDá2*VERTICALá(Y)
  661. VCTRL3 DS 1 ;VICáMEMORYáCONTROLáREGISTER
  662. IRQOCC DS 1 ;VICáINTERRUPTáFLAGáREGISTER
  663. IRQMSK DS 1 ;IRQáMASKáREGISTER
  664. SPRBDP DS 1 ;SPRITEáTOáBACKGROUNDáDISPLAYáPRIORITY
  665. SPRMCM DS 1 ;SPRITESá0-7áMULTI-COLORáMODEáSELECT
  666. SPRXEX DS 1 ;SPRITESá0-7áEXPANDá2*HORIZONTALá(X)
  667. SPRSPR DS 1 ;SPRITEáTOáSPRITEáCOLLISIONáDETECT
  668. SPRBCK DS 1 ;SPRITEáTOáBACKGROUNDáCOLLISIONáDETECT
  669. BORCOL DS 1 ;BORDERáCOLOR
  670. BCKCOL DS 4 ;BACKGROUNDáCOLORá0-3
  671. SPRMCL DS 2 ;SPRITEáMULTI-COLORáREGISTERá0-1
  672. SPRCOL DS 8 ;SPRITEá0-7áCOLOR
  673.  
  674.  ORG $D400
  675.  
  676. *á6581áSOUNDáINTERFACEáDEVICE
  677.  
  678. SID = * ;VOICEá1:
  679. V1FREQ DS 2 ;ááFREQUENCYáCONTROL
  680. V1PWW DS 2 ;ááPULSEáWAVEFORMáWIDTH
  681. V1CTRL DS 1 ;ááCONTROLáREGISTER
  682. V1ENVL DS 2 ;ááENVELOPEáGENERATORá(ADSR)
  683. ;VOICEá2
  684. V2FREQ DS 2 ;ááFREQUENCYáCONTROL
  685. V2PWW DS 2 ;ááPULSEáWAVEFORMáWIDTH
  686. V2CTRL DS 1 ;ááCONTROLáREGISTER
  687. V2ENVL DS 2 ;ááENVELOPEáGENERATORá(ADSR)
  688. ;VOICEá3:
  689. V3FREQ DS 2 ;ááFREQUENCYáCONTROL
  690. V3PWW DS 2 ;ááPULSEáWAVEFORMáWIDTH
  691. V3CTRL DS 1 ;ááCONTROLáREGISTER
  692. V3ENVL DS 2 ;ááENVELOPEáGENERATORá(ADSR)
  693. ;FILTERS:
  694. FCUTOF DS 2 ;ááFILTERáCUTOFFáFREQUENCY
  695. FRESON DS 1 ;ááFILTERáRESONANCE/VOICEáINPUTáCONTROL
  696. FMOVOL DS 1 ;ááSELECTáFILTERáMODEáANDáVOLUME
  697. PADDL1 DS 1 ;A/D-CONVERTER:áGAMEáPADDLEá1
  698. PADDL2 DS 1 ;A/D-CONVERTER:áGAMEáPADDLEá2
  699. OSC DS 1 ;OSCILLATORá3áRANDOMáNUMBERáGENERATOR
  700. ENV DS 1 ;ENVELOPEáGENERATORá3áOUTPUT
  701.  ORG $D500
  702. SIDIMG DS 768 ;SIDáIMAGES
  703. COLRAM DS SCSIZE+24 ;COLORáRAMá(NYBBLES)
  704.  
  705.  ORG $DC00
  706.  
  707. *á6526áCOMPLEXáINTERFACEáADAPTERá#1
  708.  
  709. COLM = * ;KEYBOARDáMATRIX
  710. D1PRA DS 1
  711. ROWS = * ;KEYBOARDáMATRIX
  712. D1PRB DS 1
  713. D1DDRA DS 1
  714. D1DDRB DS 1
  715. D1T1L DS 1
  716. D1T1H DS 1
  717. D1T2L DS 1
  718. D1T2H DS 1
  719. D1TOD1 DS 1
  720. D1TODS DS 1
  721. D1TODM DS 1
  722. D1TODH DS 1
  723. D1SDR DS 1
  724. D1ICR DS 1
  725. D1CRA DS 1
  726. D1CRB DS 1
  727.  
  728.  ORG $DD00
  729.  
  730. *á6526áCOMPLEXáINTERFACEáADAPTERá#2
  731.  
  732. D2PRA DS 1
  733. D2PRB DS 1
  734. D2DDRA DS 1
  735. D2DDRB DS 1
  736. D2T1L DS 1
  737. D2T1H DS 1
  738. D2T2L DS 1
  739. D2T2H DS 1
  740. D2TOD1 DS 1
  741. D2TODS DS 1
  742. D2TODM DS 1
  743. D2TODH DS 1
  744. D2SDR DS 1
  745. S2ICR DS 1
  746. D2CRA DS 1
  747. D2CRB DS 1
  748.  
  749.  ORG $DE00
  750.  
  751. OVRLAY DS 256 ;OVERLAYáCONTROLáPORT
  752.  
  753. *áKERNALáJUMPáTABLE
  754.  
  755.  ORG $FF81
  756.  
  757. CINT DS 3 ;INITáSCREENáEDITOR
  758. IOINIT DS 3 ;INITáI/O
  759. RAMTAS DS 3 ;INITáRAM
  760. RESTOR DS 3 ;RESTOREáDEFAULTáI/OáVECTORS
  761. VECTOR DS 3 ;READ/SETáVECTOREDáI/O
  762. SETMSG DS 3 ;CONTROLáKERNALáMESSAGES
  763. SECOND DS 3 ;SENDáSAáAFTERáLISTEN
  764. TKSA DS 3 ;SENDáSAáAFTERáTALK
  765. MEMTOP DS 3 ;READ/SETáTOPáOFáMEMORY
  766. MEMBOT DS 3 ;READ/SETáBOTTOMáOFáMEMORY
  767. SCNKEY DS 3 ;SCANáKEYBOARD
  768. SETTMO DS 3 ;SETáTIMEOUTáDEFEAT
  769. ACPTR DS 3 ;INPUTáBYTEáFROMáSERIALáPORT
  770. CIOUT DS 3 ;OUTPUTáBYTEáTOááSERIALáPORT
  771. UNTLK DS 3 ;COMMANDáDEVICEáTOáUNTALK
  772. UNLSN DS 3 ;COMMANDáDEVICEáTOáUNLISTEN
  773. LISTN DS 3 ;COMMANDáDEVICEáTOáLISTEN
  774. TALK DS 3 ;COMMANDSáDEVICEáTOáTALK
  775. RDSTAT DS 3 ;READáI/OáSTATUSáWORD
  776. SETLFS DS 3 ;SETáLOGICAL,áFIRST,áANDáSECONDáADDR.
  777. SETNAM DS 3 ;SETáFILEáNAME
  778. OPEN DS 3 ;OPENáLOGICALáFILE
  779. CLOSE DS 3 ;CLOSEáLOGICALáFILE
  780. CHKIN DS 3 ;OPENáCHANNELáFORáINPUT
  781. CHKOUT DS 3 ;OPENáCHANNELáFORáOUTPUT
  782. CKOUT = CHKOUT
  783. CLRCHN DS 3 ;CLOSEáI/OáCHANNELS
  784. CLRCH = CLRCHN
  785. CHRIN DS 3 ;INPUTáCHARáFROMáCHANNEL
  786. RDT = CHRIN
  787. CHROUT DS 3 ;OUTPUTáCHARáTOáCHANNEL
  788. WRT = CHROUT
  789. LOADF DS 3 ;LOADáRAMáFROMáAáDEVICE
  790. SAVEF DS 3 ;SAVEáRAMáTOáDEVICE
  791. SETTIM DS 3 ;SETáREALáTIMEáCLOCK
  792. RDTIM DS 3 ;READáREALáTIMEáCLOCK
  793. STOP DS 3 ;SCANáSTOPáKEY
  794. GET DS 3 ;GETáCHARáFROMáKEYBOARDáBUFFER
  795. CLALL DS 3 ;CLOSEáALLáCHANNELSáANDáFILES
  796. UDTIM DS 3 ;INC.áREALáTIMEáCLOCK
  797. SCREN DS 3 ;RETURNáROW,COLUMNáOFáCURSOR
  798. PLOT DS 3 ;READ/SETáROW,COLUMNáFORáCURSOR
  799. IOBASE DS 3 ;RETURNSáBASEáADDRESSáOFáI/OáDEVICES
  800.  
  801. SKIP = $2C ;OPCODEáFORá'BITá<ABS>'á(SKIPá2áBYTES)
  802.  
  803.  
  804.  ORG $FFFA
  805.  
  806. CNMI DS 2 ;NON-MASKABLEáINTERRUPTáVECTOR
  807. CRESET DS 2 ;SYSTEMáRESETáVECTOR
  808. CIRQ DS 2 ;INTERRUPTáREQUESTáVECTOR
  809.  
  810.  
  811. á ast 60
  812.  
  813.  
  814. *áFORáUSEáINáASSEMBLERáCODEDáSUBROUTINESáINáCOMAL:
  815.  
  816. *áLABELSáFORáPROC/FUNCáDEFINITIONS
  817.  
  818. CART = %10000000 ;10XRXPPPá(INáCARTRIDGEáATá$8000-$BFFF)
  819. C64 = %01000111 ;01XRXPPPá(INáC64áááááááATá$0900-$FFFF)
  820. ROMMED = %00010000
  821.  
  822. DEFPAG = C64-LORAM
  823.  
  824. PROC = 112
  825. ENDPRC = 126
  826.  
  827. FUNC = 227
  828. ENDFNC = 126
  829.  
  830. PARAM = 114
  831. VALUE = PARAM+0
  832. REF = PARAM+3
  833. ARRAY = 6
  834.  
  835. REAL = 0
  836. INT = 1
  837. STR = 2
  838.  
  839.  
  840. *áSIGNALáTYPES:
  841.  
  842. POWER1 = 0 ;POWERáUPáSEIá(ONLYáFORáROMMEDáLIBRARIES)
  843. POWER2 = 1 ;POWERáUPáCLIá(ONLYáFORáROMMEDáLIBRARIES)
  844. LINK = 2 ;AFTERáLINK/LOAD-COMMANDá(ONLYáLIBRARYáJUSTáLINKED)
  845. DSCRD = 3 ;BEFOREáDISCARD-COMMAND
  846. NEW = 4 ;AFTERáNEW-COMMANDáORáBADáLOAD/RUN/CHAIN
  847. CLRTAB = 5 ;AFTERáNAMEáTABLEáISáCLEARED
  848. RUN = 6 ;BEFOREáRUN/CHAIN
  849. WARM1 = 7 ;WARMáSTARTáSEI
  850. CON = 8 ;BEFOREáCONTINUATIONá(CONáCOMMAND)
  851. ERROR = 9 ;AFTERáERRORáMESSAGEáPRINTED
  852. STOP1 = 10 ;AFTERáSTOP/END
  853. BASIC = 11 ;BEFOREáLEAVINGáCOMAL
  854.  
  855.  
  856.  
  857.  DEND
  858.